home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 1 / LIGHT-ROM 1 (Amiga Library Services)(1994).iso / ffdisks / d961.lha / MPMaster / Espa�Ðl / MPMaster.DOC < prev    next >
Text File  |  1993-11-30  |  22KB  |  442 lines

  1.  
  2.       MIDI Packet Master  © 1993 WareSoft  Todos los derechos reservados
  3.                     Programado por Antonio J. Pomar Rosselló
  4.  
  5.  
  6.  
  7. DISTRIBUCION
  8.  
  9.    Este programa es FreeWare. Esto  significa  que el programa  puede  circular
  10. libremente  siempre que se incluyan todos los ficheros  asociados al  programa.
  11. Está  prohibido  utilizar el programa para fines comerciales, o sea que solo se
  12. pueden  cargar los gastos normales de copia y envio que se cargan habitualmente
  13. en las librerias de Dominio Público.
  14.  
  15.    El paquete completo de distribución en castellano comprende:
  16.  
  17.     MPMaster        Este es el programa ejecutable.
  18.     MPMaster.DOC        Es el fichero que estás leyendo ahora.
  19.     MPMaster.HISTORIA   Explica las versiones que han aparecido hasta
  20.                 la fecha de distribución del paquete.
  21.     MPMaster.ESQUEMA    Esquema de un interface MIDI de bajo costo.
  22.     
  23.    El autor  del  programa  no acepta ninguna  responsabilidad  sobre cualquier
  24. perjuicio  que puede  suponer el uso  o abuso del  programa,  ni ofrece ninguna
  25. garantia  sobre el programa y sus capacidades. Tampoco se garantiza  nada sobre
  26. la precisión  o  estilo   literario  de  este  documento  ni  se acepta ninguna
  27. responsabilidad sobre las consecuencias que puede acarrear su lectura.
  28.  
  29.    Se reconocen  todas las marcas registradas, marcas  comerciales y Copyrights
  30. de los productos mencionados en este documento.
  31.  
  32.    Junto con  el programa se  incluye el esquema  de un interface MIDI barato y
  33. que  funciona  desde hace  más  de  6  años  (realizado  originalmente para  un
  34. secuenciador  MIDI  que  programé  en  ensamblador  para  el  Spectrum +3).  El
  35. interface  es muy pequeño,  tiene aislamiento por  optoacoplador e icorpora una
  36. entrada y una salida. No acepto ninguna responsabilidad sobre las consecuencias
  37. del  montaje y uso  del interface MIDI.  Por otro lado hay en estos  momentos 3
  38. interfaces como  el del esquema  ya montados y que funcionan sin problemas.  El
  39. circuito no necesita placa  de circuito  impreso  ya que  es tan  sencillo  que
  40. cabe  en la caja  del conector  de 25 patillas  que va al port serie (cuando lo
  41. diseñé para el  Spectrum +3 conseguí  meter todo el interface en  la caja de un
  42. conector de 9 patillas).
  43.  
  44.    Queda prohibido el uso del esquema del interface MIDI para usos comerciales,
  45. por lo que solo está permitida la construcción de éste para uso personal.
  46.  
  47.  
  48.  
  49. REQUERIMIENTOS
  50.  
  51.    Este programa necesita WorkBench 2.04  (o sea, versión 37)  o  superior para
  52. funcionar. Además en LIBS:  tiene que estar la  asl.library,  que viene  con el
  53. sistema operativo, para el requester de ficheros.
  54.  
  55.    Es imprescindible  tener un  interface MIDI para conectar el equipo MIDI que
  56. quieras usar  con el Amiga.  En caso de que  no tengas interface MIDI  mira  el
  57. esquema que se incluye con el programa para construirte un interface sencillo.
  58.  
  59.  
  60.  
  61. INTRODUCCION
  62.  
  63.    Este programa se llama  MIDI Packet Master (MPMaster para abreviar)  y sirve
  64. para transferir  samples entre el  Amiga y un dispositivo  MIDI  (originalmente
  65. programado para usarlo  con un sintetizador Yamaha SY85)  que admita  el uso de
  66. samples.  Lo que  hace es  realizar la transferencia según el standard  MIDI de
  67. transmisión  de  samples,  de forma  que cualquier  aparato que  soporte  dicho
  68. standard podrá  transmitir/recibir  samples  hacia/desde el Amiga utilizando el
  69. programa.  Por lo que  yo sé  ninguno  de los programas  comerciales  MIDI  que
  70. conozco soporta este tipo de transferencia.
  71.  
  72.  
  73.  
  74. STANDARD MIDI
  75.  
  76.    El standard MIDI de transferencia  de samples  (llamado también  Sample Dump
  77. Standard) divide el sample en packets (paquetes) de pequeño tamaño (127 bytes),
  78. enviando los packets de forma consecutiva via interface MIDI. Esto ralentiza la
  79. transmisión,  ya que de  cada packet  solo  120 bytes son de datos reales  y el
  80. resto (7 bytes)  son de control, pero permite  que la corrección de errores sea
  81. mucho más rápida,  ya que si la  transferencia falla  en algún momento se puede
  82. solicitar a la fuente de datos que repita el packet incorrecto,  y posteriores,
  83. en vez de tener que reanudar la transferencia desde el principio.
  84.  
  85.    Las características del standard son:
  86.  
  87.    - Tamaño máximo del sample: 2 millones de unidades de sampleado
  88.    - Resolución del sample: 8, 12 o 16 bits
  89.    - Los samples se pueden transferir por el canal que se desee (1 a 16)
  90.    - Transmisión del margen del sample utilizado para la repetición (loop)
  91.    - Tipo de repetición definible (ninguna,normal o alternada)
  92.    - Control del centrado del sample en el teclado (periodo)
  93.  
  94.    Respecto al periodo,  no he podido saber  como se calcula por  que en manual
  95. del SY85  no da  ninguna  información  sobre  este  parámetro.  Si dispones  de
  96. alguna  información  a este  respecto  mándamela,  por  favor,  para  que pueda
  97. completar la implementación del standard en el programa.
  98.  
  99.    Luego viene lo del inicio y final  de repetición (loop). Aqui parece que hay
  100. algo extraño en cuanto a  los valores que  puede tomar. Cuando la repetición se
  101. hace con todo  el sample (un bucle  de repetición muy  corriente)  el inicio de
  102. loop toma el  valor 0,  pero el  final  de loop  toma  como valor el tamaño del
  103. sample, cuando  en teoria debería  ser el tamaño del sample MENOS 1. Esto se ve
  104. claramente en un sample de tamaño 5 (por ejemplo), donde el inicio de loop toma
  105. el valor 0 y el  fin de loop el valor 5.  Según esto resulta que el loop es mas
  106. largo que el propio sample, ya que tenemos las posiciones de sample 0, 1, 2, 3,
  107. 4 y 5, que es donde termina el loop,  o sea,  6 posiciones en total. Esto lo he
  108. comprobado en varios samples que venian con el SY85.  Tras hacer varias pruebas
  109. con samples  transmitidos  desde el Amiga  al SY85  he podido  comprobar que el
  110. final de loop no debe salir fuera del sample, ya que así se  producen ruidos al
  111. leer posiciones  de memoria que no corresponden  a las  ocupadas por el sample.
  112. Por esto el  programa limita  el loop a los valores  que deberian ser correctos
  113. (0 y longitud-1), con lo que el loop funciona perfectamente.
  114.  
  115.    El formato tiene  limitaciones, sobre todo cuando lo comparamos con formatos
  116. de tipo flexible, como el IFF, pero tiene la ventaja de ser un standard común a
  117. varias máquinas, además, es lo único que hay...
  118.  
  119.    Consulta el manual de tu equipo para más  detalles sobre este formato  MIDI,
  120. si es que está preparado para soportarlo.   Si no lo está, este  programa no te
  121. sirve de nada en absoluto (lo siento...).
  122.  
  123.    En el caso de  que tengas  información sobre este  standard  te  agradeceria
  124. mucho  que me  enviases  fotocopias  para poder  mejorar  la implementación del
  125. standard en el programa.
  126.  
  127.  
  128.  
  129. EL STANDARD EN EL PROGRAMA
  130.  
  131.    El  programa  puede  transmitir/recibir  samples via  MIDI usando el formato
  132. standard de packets. Las características son:
  133.  
  134.   Recepción:
  135.    - Canal de recepción seleccionable (1-16)
  136.    - Acepta cualquier resolución entre 8 y 21 bits.
  137.    - Al grabar el sample a disco se convierte siempre a RAW de 8 bits.
  138.    - Muestra todas las características del sample que se está recibiendo.
  139.    - Detección de errores de recepción, aunque no soporta aún la corrección
  140.      de errores, si no que la recepción se interrumpe en caso de error.
  141.    - Posibilidad de interrumpir la recepción.
  142.  
  143.   Transmisión:
  144.    - Canal de transmisión seleccionable (1-16), independiente del de recepción.
  145.    - Ajuste manual del loop (inicio, final y tipo) y del periodo.
  146.    - La transmisión es siempre de 8 bits.
  147.    - Posibilidad de interrumpir la transmisión.
  148.  
  149.    Algunas de las características del programa son un poco  primitivas debido a
  150. que mis información sobre el  standard MIDI de  transmisión de samples parte de
  151. la  poca (muy poca..)  información que  se dá en el  manual  del SY85,  y de un
  152. montón   de   pruebas   realizadas   sobre   dicho   sintetizador.  Además,  la
  153. implementación del standard en el SY85 no es completa,  aunque funciona bastate
  154. bién,  por lo que no he  podido experimentar  con todas  las posibilidades  del
  155. standard.
  156.  
  157.    Por otro lado el  programa solo admite  grabar  samples  en formato RAW de 8
  158. bits pero se le  ha añadido la  posibilidad de cargarlos  en RAW o en IFF  para
  159. poder aprovechar los datos de loop que se incluyen en el formato IFF.  Por otro
  160. lado me gustaria  añadir  la grabación  en IFF pero para ello  necesito un poco
  161. más de información  sobre  el formato  8SVX  y  sobre la  IFFParse.library  del
  162. sistema operativo.
  163.  
  164.  
  165.  
  166. ARRANQUE DEL PROGRAMA
  167.  
  168.    El programa  está pensado para arrancar desde WorkBench  ya que las opciones
  169. se leen del icono  del programa, por lo que no recomiendo  arrancarlo  desde el
  170. SHELL.
  171.  
  172.    Al arrancar, el programa aloja el port serie a través del sistema operativo,
  173. para evitar así posibles conflictos  con otros programas  que intenten  acceder
  174. también  al port serie. Además, mientras el programa  esté en marcha  nadie más
  175. podrá usarlo. En caso de que alguien esté usando el port serie en el momento de
  176. arrancar  el programa,  éste comunicará que le  ha sido imposible  conseguir el
  177. port serie y no arrancará.  También dará el nombre que ha entregado el programa
  178. que ocupa  el port serie.  También  se usa el  audio.device para  reproducir el
  179. sample de forma legal.
  180.  
  181.    Cuidado con los programas que acceden al port serie a lo bestia, sin pedirlo
  182. al sistema operativo, ya que se podría producir un conflicto serio,  sobre todo
  183. durante la transmisión, y el sintetizador podria ponerse histérico.  Un ejemplo
  184. de ésto es el secuenciador Dr T's KCS, que accede al port serie sin mirar antes
  185. si ya hay alguien utilizándolo (enhorabuena al programador...). En caso de usar
  186. el Dr T's KCS, procura que no estén nunca en marcha al mismo tiempo el MPMaster
  187. y el secuenciador. Por otro lado,  este es el único caso de este tipo que me he
  188. encontrado,  ya que incluso el  Protracker 2.3 aloja de  forma 'legal'  el port
  189. serie para leer la entrada MIDI.
  190.  
  191.    Si hay  algún  problema al arrancar  el programa,  éste lo comunicará con un
  192. requester y volverá al sistema operativo.
  193.  
  194.    Las ToolTypes que se pueden meter en el icono son:
  195.  
  196.     WB_REQUESTER    Con esto le indicamos al programa que queremos que 
  197.             abra el requester  de ficheros en  la pantalla del
  198.             WorkBench, en lugar de la del propio programa.
  199.             
  200.     PATTERN=    Le  indicamos  el  pattern   (plantilla)  para  el
  201.             requester.  Consulta el manual del ordenador sobre
  202.             el uso de plantillas de fichero.
  203.             
  204.     DIR=        Indica en  que  directorio  queremos  que  se abra
  205.             inicialmente el requester de grabar/cargar sample.
  206.             Esto es util  para  dirigirlo  al  directorio  del
  207.             disco duro donde guardas  normalmente los samples,
  208.             y no tener que meter cada vez el path.
  209.             
  210.     FREC=        Fija la frecuencia por defecto para samples RAW.
  211.     
  212.     MAXFREC=    Fija  la frecuencia  de reproducción máxima que se
  213.             puede utilizar.  En los chips OCS/ECS el máximo es
  214.             de 28867 Hz pero prefiero que se pueda cambiar por
  215.             si salen modelos que  admitan  mayores frecuencias
  216.             (creo   que   los  modelos   AGA  admiten  mayores
  217.             frecuencias pero no he podido comprobarlo).
  218.  
  219.             
  220.    La opción de abrir el requester de  ficheros en el WorkBench  es de utilidad
  221. solo cuando dispones de un requester que además es una AppWindow, o sea, que se
  222. le  pueden tirar iconos dentro.  Por ejemplo,  el requester de  ficheros  de la
  223. reqtools.library, o el de la asl.library del WorkBench 3.0. En caso de que uses
  224. la  versión  2.04 del sistema  operativo,  el requester no es  AppWindow,  pero
  225. puedes utilizar un parche para substituir el requester de la asl.library por el
  226. de la reqtools.library, que es muchísimo mejor.
  227.  
  228.  
  229.  
  230. PANTALLA DEL PROGRAMA
  231.  
  232.    La pantalla del programa está dividida en 4 zonas:
  233.  
  234.    TRANSMISION:  Desde aqui  controlamos la transmisión y todos los parámetros
  235.    que se le entregarán al equipo MIDI. Los gadgets son:
  236.   
  237.    Selec.-  Abre el requester  de ficheros  para que puedas  seleccionar  el
  238.      sample que quieres transmitir.  Debe ser un sample RAW o IFF de 8 bits.
  239.      Una vez  seleccionado el sample,  los gadgets  se pondrán  en  el valor
  240.      adecuado,  mostrando así la  longitud del sample,  el numero de packets
  241.      que  ocupa,  y  fijando  el  'Loop start'  y  el 'Loop end'  a  valores
  242.      adecuados.
  243.      
  244.    Frecuencia.- Controla la  frecuencia de reproducción del sample al pulsar
  245.      sobre el gadget 'Play'.
  246.    
  247.    Waveform.- Esto deberia fijar el numero de sample que se le asigna dentro
  248.      del  sintetizador  al sample  que  transmitimos.  La  función  de  este
  249.      parámetro  depende  del  sintetizador.  En el caso del SY85, este valor
  250.      fija en que  WAVEFORM  se meterá el sample,  ya que cada WAVEFORM puede
  251.      contener varios samples y se pueden asignar después a diferentes partes
  252.      del teclado.
  253.      
  254.    Loop start, Loop end, Tipo loop.- Estos son los parámetros que definen el
  255.      loop (repetición),  o sea,  margen de repetición y tipo (off,  normal o
  256.      alternada).
  257.      
  258.    Transmitir.- Transmite  el  sample  actualmente  seleccionado.  Se  puede
  259.      interrumpir con el gadget STOP!!. En el momento de transmitir el sample
  260.      el programa no lo carga en  memoria  completo  si no que va cargando la
  261.      porción que necesita transmitir en cada momento.  Esto significa que la
  262.      memoria  disponible no limita el tamaño  máximo del sample que se puede
  263.      transmitir, si no que el límite lo fija el standard (2 Megas).  Durante
  264.      la transmisión se puede ver en la ventana  de  transmisión el numero de
  265.      packets que quedan por enviar.
  266.      
  267.    X.-  Limpia la zona de  transmisión  como si no  hubiesemos  seleccionado
  268.      sample.  Es  puramente  estética, ya que el seleccionar un sample no se
  269.      carga en memoria,  ni se abre el fichero,  simplemente guarda el nombre
  270.      para usarlo al pulsar el gadget 'Transmitir'.
  271.  
  272.   
  273.    RECEPCION:  Aqui podemos  ver las  características  del sample que  estamos
  274.    recibiendo, o que ya hemos recibido. Hay 3 gadgets tipo botón:
  275.   
  276.    Recibir.-  El  programa se queda  esperando que se le transmita un sample
  277.      desde el exterior. Se puede interrumpir con el gadget STOP!!. El sample
  278.      se recibirá en memoria de un golpe,  acumulando  todos los packets para
  279.      su conversión en el momento de grabar el sample.
  280.      
  281.    Salvar sample.-  Si hay un  sample  en  memoria (recibido) se  abrirá  el
  282.      requester de ficheros para que introduzcas el nombre con el que quieres
  283.      salvar el sample,  y en que directorio.  Se salvará en formato RAW de 8
  284.      bits.
  285.      
  286.    X.-  Si hay un sample en memoria,  lo borra de ésta y devuelve la memoria
  287.      utilizada para el sample al sistema operativo.
  288.  
  289.  
  290.    CANALES: controla los canales que se usan para entrada/salida.  Para salida
  291.    se puede especificar cualquiera de los canales del 1 al 16. Para entrada se
  292.    puede seleccionar un canal del 1 al 16 o el modo OMNI,  o sea,  leer  todos
  293.    los canales.
  294.  
  295.  
  296.    ZONA INFERIOR: es la zona de mensajes, y de reproducción de samples.
  297.   
  298.    Durante la  transmisión/recepción se activa el gadget STOP!! y se desactivan
  299. todos los demás  gadgets de la  pantalla  menos los dos gadgets de selección de
  300. canales,  ya que en la versión  2.04 del sistema no  se pueden desactivar  este
  301. tipo de  gadgets  (en  la versión 3.0  creo que si se puede).  De todas formas,
  302. aunque durante la  transmisión/recepción modifiques la selección de canales, al
  303. terminar  la transferencia  el programa  pondrá la  selección de  canales  como
  304. estaba antes de empezarla.
  305.  
  306.   
  307.  
  308. MENUS Y TECLADO
  309.  
  310.    Todos los gadgets que tienen una letra  subrayada  significa que pulsando la
  311. tecla  correspondiente  a esa  letra es  como  si  pulsáramos  el  gadget,  sin
  312. necesidad de tocar el ratón para nada. Además, la tecla SPACE equivale a pulsar
  313. el  gadget  STOP!!,  o sea que  interrumpe la  transmisión/recepción  en curso.
  314. También  tenemos la tecla HELP, que mostrará el requester de 'Acerca de...', la
  315. tecla ESCAPE, con la que  salimos del programa,  y la tecla TAB, que selecciona
  316. el primer gadget  numérico de la pantalla para poder  modificarlo sin tener que
  317. seleccionarlo  con el ratón.  Mientras  estás  modificando un  gadget  numérico
  318. puedes  pulsar TAB para  pasar al siguiente  gadget numérico, o Shift+TAB  para
  319. pasar  al anterior.  En este punto  hay un problema, y es que cuando  entras un
  320. valor en el gadget 'Loop start' (o 'Loop end') y el programa tiene que corregir
  321. el  otro valor  del loop,  el corregir  dicho gadget  lo desactiva,  por lo que
  322. tendrás que seleccionar el gadget (o pulsar TAB) para poder modificarlo. Parece
  323. que esto  es una interferencia que  se hace el  sistema  operativo a si  mismo.
  324. Ignoro si en versiones posteriores del sistema (2.1 y 3.0) esto sigue así. Para
  325. comprobar esto  selecciona el gadget 'Loop start',  entra un valor mayor que el
  326. que está en 'Loop end' y pulsa TAB, verás lo que pasa.
  327.  
  328.    Por otro lado está el menú del programa,  aunque todo lo que está en el menú
  329. se puede hacer desde  teclado o pulsando los gadgets adecuados. Esta ahí por si
  330. se quisiera usar el programa sin el teclado, ya que las opciones 'Acerca de...'
  331. y 'Quitar' no tienen gadget asociado en la pantalla.
  332.  
  333.  
  334.  
  335. CUESTIONES TECNICAS (Apología del ensamblador...)
  336.  
  337.    Este  programa  ha  sido escrito  INTEGRAMENTE  en  ensamblador  con  código
  338. 'legal', o sea, siguiendo las normas del sistema operativo. Es muy estable,  ya
  339. que no se ha colgado nunca en operación normal,  y permite multitarea completa,
  340. sin problemas de velocidad ni siquiera en un Amiga 500 normal. Lo he probado en
  341. un Amiga 4000/030 y no ha dado ningún problema,  ni con el procesador ni con el
  342. sistema operativo 3.0.
  343.  
  344.    Programado  sobre  un  Amiga 500 Plus  con  2 Megas  de RAM,  3  disqueteras
  345. y el  ensamblador  Devpac 3.02.  Este  es el segundo programa completo que hago
  346. en ensamblador,  y el primero que utiliza el sistema operativo,  y es mucho más
  347. facil de lo que parece.
  348.  
  349.    Programa realizado inicialmente para transferir samples entre un Amiga 500 y
  350. un  sintetizador  Yamaha SY85.  Primero  intenté  utilizar  la MIDI.library  de
  351. dominio público,  pero es tan extremadamente  lenta  que el  ordenador  quedaba
  352. literalmente 'congelado' mientras recibia los datos del sample. Con el MPMaster
  353. la multitarea es total,  con lo que puedes tener varios programas en marcha sin
  354. problemas. El programa está realizado de manera que sea casi imposible que haya
  355. problemas por falta  de velocidad en  entornos multitarea muy cargados. Durante
  356. una transmisión, por ejemplo, el programa solo ocupa un 15% del tiempo total de
  357. procesador en mi Amiga 500 Plus.  Durante la recepción, por otro lado, ocupa un
  358. 3% del  tiempo  de procesador  en un  Amiga  500 normal.  En los  dos casos  el
  359. ordenador   tiene   conectada   memoria   FAST   externa  (1  Mega  y  4  Megas
  360. respectivamente).  Solo  pueden  surgir  problemas  durante  la  recepción  con
  361. programas que desactivan las interrupciones del port serie (acción 'ilegal') ya
  362. que entonces el  ordenador no  puede recoger  los datos suficientemente rápido.
  363. Este problema se presenta solo en ocasiones excepcionales.
  364.  
  365.  
  366.  
  367. MEJORAS A REALIZAR
  368.  
  369.    Lista de mejoras que quiero realizar:
  370.    
  371.    - Poder transmitir y recibir al mismo tiempo.
  372.    - Añadir puerto  AREXX al programa  de forma que se pueda controlar desde
  373.      otra aplicación,  o  que  se puedan  controlar otros programas desde el
  374.      MPMaster.
  375.    - Poder cambiar la velocidad de puerto serie por si en algún momento sale
  376.      el esperadísimo standard MIDI de alta velocidad.
  377.    - Poder asociar un nombre a cada uno de los canales de entrada, y salida,
  378.      para facilitar la selección de canales en un entorno con varios equipos
  379.      MIDI.
  380.    - Soporte para la powerpacker.library, y  poder comprimir  y descomprimir
  381.      asi los samples.
  382.    - Alojar el hardware serie solo en el momento de realizar la transmisión/
  383.      recepción, permitiendo así a otros  programas en  multitarea acceder al
  384.      MIDI sin tener que quitar el MPMaster.
  385.    - Soporte para samples IFF y otros formatos (de 8 o más bits).
  386.    - Grabar  iconos,  junto  con  los samples,  conteniendo  la  información
  387.      recibida del equipo MIDI sobre loop, periodo, etc...
  388.    - Incluir help interactivo (si hay alguien que le parezca dificil usar el
  389.      programa).
  390.    - Requesters  de ficheros separados  para cargar y grabar,  guardando así
  391.      por separado el último path y nombre usados para cargar y grabar.
  392.    - Poder usar  desde SHELL el  programa para mandar  listas de  samples en 
  393.      bloque mediande un script o especificando varios ficheros.
  394.    - Uso opcional de los mensajes de corrección de errores MIDI.
  395.    - Edición gráfica del loop.
  396.    - Soporte multilengua mediante la locale.library.
  397.  
  398.    De todas formas no estoy seguro de cuando podré realizar estas mejoras, o si
  399. las  realizaré  alguna vez, ya que dependen  mucho de la información  que pueda
  400. conseguir sobre formatos, sistema operativo, etc...,  y de las ganas  que tenga
  401. de mejorar el programa, ya que yo no lo utilizo por que no soy músico  ni tengo
  402. sintetizador.  De  todas  formas  animo al que le  interese  que se  mejore  el
  403. programa  que me  escriba  para  comunicarme sus  ideas y  sugerencias sobre el
  404. programa.
  405.    
  406.    
  407.    
  408. AGRADECIMIENTOS
  409.  
  410.    Mis más sinceros agradecimientos:
  411.    
  412.    - a Fco Javier Cocaña Galán, Leonardo Cocaña Galán y Juan A. Estela Valín
  413.      por su amistad, y por sus constantes sugerencias (y feroces críticas).
  414.    - a Commodore-Amiga Inc por crear el mejor ordenador del mundo.
  415.    - a Motorola por sus excelentes microprocesadores, fáciles de programar y
  416.      extremadamente flexibles.
  417.    - a Nico François por crear la fantástica reqtools.library.
  418.    - a IBM y Atari por crear  unos ordenadores  tan malos y facilitar así mi
  419.      elección por el Amiga (muchiiisimas gracias).
  420.  
  421.  
  422.  
  423. PARA CONTACTAR
  424.  
  425.    Te agradeceria que  me enviases toda  información que me pueda ser útil para
  426. ampliar  la potencia  del  programa, como por ejemplo, información  sobre otros
  427. formatos de fichero  de samples (de 8 o más bits), sobre la  implementación del
  428. standard MIDI de samples sobre otros equipos MIDI que no sean el Yamaha SY85, o
  429. simplemente para saber yo con que equipos funciona bién el programa.
  430.  
  431.    Para enviar sugerencias, informar de errores, intercambiar información, etc,
  432. contacta conmigo en esta dirección:
  433.  
  434.  
  435.                  Antonio J. Pomar Rosselló
  436.                C/ Alférez Cerdá  nº 13-bajos
  437.                   Palma de Mallorca 07014
  438.                      Baleares (España)
  439.  
  440.  
  441. Palma de Mallorca  22-Noviembre-1993
  442.